home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-10-15 | 8.0 KB | 412 lines | [mlts/slnk] |
- ! Global Village Teleport Gold & Silver - Example Modem Script
- !
- ! 'mlts' resource info for this modem:
- ! byte 1 == 01 -> modem HAS builtin reliability protocols
- ! byte 2 == 00 -> reserved by Apple
- ! byte 3 == 21 -> max hex chars in varstr 7 (33 dec)
- ! byte 4 == 21 -> max hex chars in varstr 8
- ! byte 5 == 21 -> max hex chars in varstr 9
- !
- @ORIGINATE
- @ANSWER
- !
- ! set up the modem - label range is 1-10
- !
- ! Mac talks to the modem at 19,200 bps.
- serreset 19200, 0, 8, 1
- !
- ! reset the serial port
- HSReset 0 0 0 0 0 0
- settries 0
- !
- @LABEL 1
- matchclr
- matchstr 1 3 "OK\13\10"
- ! &F - recall factory settings
- ! &D3 - Reset Modem on On-to-Off DTR transitions
- ! &K3 - Enable CTS/RTS Hardware flow control
- ! \J0 - Disable auto port rate adjust
- ! W2 - Connect result code reports modem speed
- ! \Q2 - Unidirectional flow control
- ! S7=60 - To allow for an international call
- ! S0=0 - Don't answer calls
- ! E0 - Turn command echo off
- ! \N0 - Enter normal mode (no reliability protocols)
- write "AT&F&D3&K3\\J0W2\\Q2S7=60S0=0E0\\N0\13"
- matchread 30
- inctries
- iftries 2 71
- !
- ! Reset the Modem
- !
- DTRSet
- pause 5
- DTRClear
- pause 5
- DTRSet
- flush
- jump 1
- !
- @LABEL 3
- ! Modem responding & configured.
- ! determine if reliable link is requested.
- !
- ! if modem mnp10 link requested (var 4 == 2) then jump label 4
- ifstr 4 4 "2"
- !
- ! if modem v42 link requested (var 4 == 1) then jump label 5
- ifstr 4 5 "1"
- !
- ! if no modem v42 link requested (var 4 == 0) [same as ARA 1.0] then jump label 9
- ifstr 4 9 "0"
- !
- ! else invalid value in var 4; exit w/error
- jump 76
- !
- @LABEL 4
- ! use this label for mnp 10 type stuff, but
- ! THIS modem doesn't support mnp 10 links.
- jump 7
- !
- @LABEL 5
- ! yes, v42 link is requested. OK for LAP-M -> MNP 4.
- matchclr
- matchstr 1 7 "OK\13\10"
- ! S95 = 72 (dec) gives PROTOCOL: and CONNECT result codes
- ! \N3 == v42 autoreliable mode
- ! %C0 == MNP 5 v42b disabled
- ! "H0 == LZW v42b disabled (substitute \34 for ")
- write "ATS95=72\\N3%C0\34H0\13"
- matchread 300
- jump 71
- !
- @LABEL 7
- ! if we DID want v42b in the modem, this is where it would go,
- ! but since the cpu does a better job at compressing compressable
- ! files, this setup stuff is commented out. the matchstrings and
- ! associated labels have been left in.
- !matchclr
- !matchstr 1 9 "OK\13\10"
- ! S95 = 104 (dec) adds COMPRESSION: result codes
- ! %C1 == MNP 5 v42b enabled
- ! "H3 == LZW v42b enabled (substitute \34 for ")
- !write "ATS95=72%C1\34H3\13"
- !matchread 300
- !jump 71
- !
- @LABEL 9
- ! If speaker on flag is true, jump to label 13. Else turn off the speaker.
- ifstr 2 13 "1"
- pause 5
- matchclr
- matchstr 1 13 "OK\13\10"
- write "ATM0\13"
- matchread 30
- jump 71
- !
- ! modem ready, so enable answering or originate a call - label range is 11-30
- !
- @LABEL 13
- pause 5
- ifANSWER 62
- !
- ! if normal dialing (parm 6 == 0) jump to 19
- ifstr 6 19 "0"
- !
- ! if blind dialing (parm 6 == 1) jump to 17
- ifstr 6 17 "1"
- !
- ! if manual dialing (parm 6 == 2) jump to 15
- ifstr 6 15 "2"
- !
- ! else invalid value in var 6; exit w/error
- jump 76
- !
- @label 15
- note "Manual dialing initiated" 3
- ! X1 to ignore dialtone & busy for manual dialing, D to dial
- write "ATX1D \13"
- jump 32
- !
- @label 17
- note "Dialing without tone" 3
- matchclr
- matchstr 1 19 "OK\13\10"
- ! X1 to ignore dialtone & busy for blind dialing
- write "ATX1\13"
- matchread 30
- jump 71
- !
- @label 19
- ! this is where we break up long dialstrings
- !
- ! parm 1 is always the full dialstring from the conn doc
- note "Dialing ^1" 3
- ! parm 3 is always "p" for pulse & "t" for tone
- !
- ! if parm 8 == blank (complete dialstring in parm 7)
- ! then jump to label 27 & dial parm 7
- ifstr 8 27 " "
- !
- ! if parm 9 == blank (complete dialstring in parms 7 & 8)
- ! then jump to label 24 & dial parm 7 & 8
- ifstr 9 24 " "
- !
- ! else dial parm 7 & 8 & 9 (complete dialstring in parms 7, 8 & 9)
- matchclr
- matchstr 1 21 "OK\13\10"
- ! parm 7 holds first string fragment
- write "ATD^3^7;\13"
- matchread 400
- ! modem not responding; bailout.
- jump 71
- @label 21
- ! parm 8 holds second string fragment
- matchclr
- matchstr 1 22 "OK\13\10"
- write "ATD^3^8;\13"
- matchread 400
- ! modem not responding; bailout.
- jump 71
- @label 22
- ! parm 9 holds last string fragment
- write "ATD^3^9\13"
- jump 32
- !
- @label 24
- matchclr
- matchstr 1 25 "OK\13\10"
- ! parm 7 holds first string fragment
- write "ATD^3^7;\13"
- matchread 400
- ! modem not responding; bailout.
- jump 71
- @label 25
- ! parm 8 holds last string fragment
- write "ATD^3^8\13"
- jump 32
- !
- @label 27
- ! parm 7 holds entire string
- write "ATD^3^7\13"
- jump 32
- !
- ! connecting - label range is 31-60
- !
- @LABEL 32
- matchclr
- matchstr 1 34 "CONNECT 1200\13\10"
- matchstr 2 35 "CONNECT 2400\13\10"
- matchstr 3 36 "CONNECT 4800\13\10"
- matchstr 4 37 "CONNECT 7200\13\10"
- matchstr 5 38 "CONNECT 9600\13\10"
- matchstr 6 39 "CONNECT 12000\13\10"
- matchstr 7 40 "CONNECT 14400\13\10"
- ! other connect speeds go below here
- matchstr 8 68 "RING\13\10"
- matchstr 9 72 "NO DIALTONE\13\10"
- matchstr 10 73 "NO CARRIER\13\10"
- matchstr 11 73 "ERROR\13\10"
- matchstr 12 74 "BUSY\13\10"
- matchstr 13 75 "NO ANSWER\13\10"
- ! other error messages go below here
- matchstr 14 44 "PROTOCOL: NONE\13\10"
- matchstr 15 45 "PROTOCOL: MNP4\13\10"
- matchstr 16 46 "PROTOCOL: LAP-M\13\10"
- ! other PROTOCOL messages go below here
- matchstr 17 47 "COMPRESSION: NONE\13\10"
- matchstr 18 48 "COMPRESSION: MNP5\13\10"
- matchstr 19 49 "COMPRESSION: V.42BIS\13\10"
- matchread 700
- ifANSWER 32
- jump 71
- !
- ! THIS v32b modem has been setup to do cts handshaking,
- ! and we assume that a cts handshaking cable is being used,
- ! so we leave the serial port set to 19,200 bps.
- !
- ! in a v32 or v22b modem, we assume the lower data rate won't require
- ! cts handshaking.
- !
- @LABEL 34
- note "Communicating at 1200 bps." 2
- CommunicatingAt 1200
- jump 58
- !
- @LABEL 35
- note "Communicating at 2400 bps." 2
- CommunicatingAt 2400
- jump 58
- !
- @LABEL 36
- note "Communicating at 4800 bps." 2
- CommunicatingAt 4800
- jump 58
- !
- @LABEL 37
- note "Communicating at 7200 bps." 2
- CommunicatingAt 7200
- jump 58
- !
- @LABEL 38
- note "Communicating at 9600 bps." 2
- CommunicatingAt 9600
- jump 58
- !
- @LABEL 39
- note "Communicating at 12000 bps." 2
- CommunicatingAt 12000
- jump 58
- !
- @LABEL 40
- note "Communicating at 14400 bps." 2
- CommunicatingAt 14400
- jump 58
- !
- ! v42 link connections.
- ! userhook 2 tells ARA that a modem-to-modem error correcting protocol has been negotiated
- ! userhook 4 would tell ARA that a modem-to-modem mnp 10 protocol has been negotiated
- !
- @LABEL 44
- ! no error correction negotiated
- jump 32
- !
- @LABEL 45
- note "MNP4 Reliable Link Established." 3
- userhook 2
- jump 32
- !
- @LABEL 46
- note "LAP-M Reliable Link Established." 3
- userhook 2
- jump 32
- !
- ! v42b link connections.
- ! userhook 3 tells ARA that a modem-to-modem compression protocol has been negotiated
- !
- @LABEL 47
- ! no compression negotiated
- jump 32
- !
- @LABEL 48
- note "MNP5 Compression Established." 3
- userhook 3
- jump 32
- !
- @LABEL 49
- note "V.42BIS Compression Established." 3
- userhook 3
- jump 32
- !
- @LABEL 58
- ! turn on cts handshaking.
- HSReset 0 1 0 0 0 0
- !
- ifANSWER 59
- pause 30
- @LABEL 59
- exit 0
- !
- ! @ANSWER
- ! Set the modem to answer on 1st ring - label range is 61-70
- !
- @LABEL 62
- matchclr
- matchstr 1 32 "OK\13\10"
- write "ATS0=1\13"
- matchread 30
- jump 71
- !
- @LABEL 68
- ifORIGINATE 32
- ! claim the serial port
- userhook 1
- note "Answering phone..." 2
- jump 32
- !
- ! error messages - label range is 71-100
- !
- ! Modem Not Responding
- @LABEL 71
- exit -6019
- !
- ! No Dial Tone
- @LABEL 72
- exit -6020
- !
- ! No Carrier or Error
- @LABEL 73
- exit -6021
- !
- ! Busy
- @LABEL 74
- exit -6022
- !
- ! No Answer
- @LABEL 75
- exit -6023
- !
- ! varstring invalid value
- @LABEL 76
- exit -6027
- !
- ! Hang up the modem - label range is 101-120
- !
- @HANGUP
- @LABEL 102
- settries 0
- serreset 19200, 0, 8, 1
- HSReset 0 0 0 0 0 0
- @LABEL 105
- !
- ! Try to get control of the modem.
- !
- DTRSet
- pause 5
- DTRClear
- flush
- !
- @LABEL 108
- flush
- matchclr
- matchstr 1 111 "NO CARRIER\13\10"
- matchstr 2 111 "OK\13\10"
- matchstr 3 111 "ERROR\13\10"
- write "ATH\13"
- matchread 30
- inctries
- iftries 3 71
- DTRSet
- pause 5
- DTRClear
- pause 5
- DTRSet
- flush
- !
- @LABEL 109
- matchclr
- matchstr 1 115 "OK\13\10"
- write "+++"
- matchread 15
- jump 108
- !
- ! recall the factory settings.
- !
- @LABEL 111
- pause 15
- matchclr
- matchstr 1 114 "OK\13\10"
- write "AT&FS0=0\13"
- matchread 30
- jump 71
- !
- @LABEL 114
- exit 0
-
- @LABEL 115
- pause 50
- jump 108
-
- !
- ! labels 121-128 are reserved for future emergency hacks
- !